package com.cy.controller;

import com.cy.model.*;
import com.cy.view.GameJF;

import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

/**
 * @Author：小小微光
 * @Package：com.cy.controller
 * @Project：Alian
 * @name：GameController
 * @Date：2023/3/16 0016  10:50
 * @Filename：GameController
 */
public class GameController { //游戏总控制器---导演
    public static HeroPlane heroPlane = new HeroPlane();//声明一个英雄机静态
    public static GameBackGround gameBackGround = new GameBackGround(0);//创建一个背景对象
    public static GameBackGround gameBackGround2 = new GameBackGround(-Util.GAME_HEIGHT);//创建两个背景对象
    public static ArrayList<Alien> alienList = new ArrayList<>(); //外星人列表
    public static ArrayList<Bullet> butlletList = new ArrayList<>(); //英雄子弹列表
    private MoveTime moveTime;
    private Timer createTimer;
    private Timer heroChangeTime;
    private CreateObjLis createObjLis = new CreateObjLis();
    private HeroChangeLis heroChangeLis = new HeroChangeLis();
    public static GameJF gameJF = new GameJF();//        创建一个游戏窗口

    public GameController() {


        //        定时器，重复执行actionPerformed方法里的内容
        moveTime = new MoveTime();
        Timer timer = new Timer(50, moveTime);
        timer.start();
//        每一秒钟，执行这里面的任务
        createTimer = new Timer(500,createObjLis);
        createTimer.start();

        heroChangeTime = new Timer(150,heroChangeLis);
        heroChangeTime.start();
// 创建了一个定时器并且立马启动，立马包含一个人物，并定时刷新。
        new Timer(20, new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                gameJF.repaint();
            }
        }).start();

    }
}
